home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 22
/
AACD 22.iso
/
AACD
/
Resources
/
Sound
/
AHI
/
Developer
/
include
/
C
/
libraries
/
ahi_sub.h
Wrap
C/C++ Source or Header
|
1997-05-18
|
3KB
|
127 lines
#ifndef LIBRARIES_AHISUB_H
#define LIBRARIES_AHISUB_H
/*
** $VER: ahi_sub.h 4.1 (2.4.97)
**
** ahi/[driver].audio definitions
**
** (C) Copyright 1994-1997 Martin Blom
** All Rights Reserved.
**
** (TAB SIZE: 8)
*/
/*****************************************************************************/
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif
#ifndef DEVICES_AHI_H
#include <devices/ahi.h>
#endif
#ifndef IFF_IFFPARSE_H
#include <libraries/iffparse.h>
#endif
/*****************************************************************************/
/*** STRUCTURES */
/* AHIAudioCtrlDrv */
struct AHIAudioCtrlDrv
{
struct AHIAudioCtrl ahiac_AudioCtrl;
ULONG ahiac_Flags; /* See below for definition */
struct Hook *ahiac_SoundFunc; /* AHIA_SoundFunc */
struct Hook *ahiac_PlayerFunc; /* AHIA_PlayerFunc */
Fixed ahiac_PlayerFreq; /* AHIA_PlayerFreq */
Fixed ahiac_MinPlayerFreq; /* AHIA_MinPlayerFreq */
Fixed ahiac_MaxPlayerFreq; /* AHIA_MaxPlayerFreq */
ULONG ahiac_MixFreq; /* AHIA_MixFreq */
UWORD ahiac_Channels; /* AHIA_Channels */
UWORD ahiac_Sounds; /* AHIA_Sounds */
APTR ahiac_DriverData; /* Unused. Store whatever you want here. */
struct Hook *ahiac_MixerFunc; /* Mixing routine Hook */
struct Hook *ahiac_SamplerFunc; /* Sampler routine Hook */
ULONG ahiac_Obsolete;
ULONG ahiac_BuffSamples; /* Samples to mix this pass. */
ULONG ahiac_MinBuffSamples; /* Min. samples to mix each pass. */
ULONG ahiac_MaxBuffSamples; /* Max. samples to mix each pass. */
ULONG ahiac_BuffSize; /* Buffer size ahiac_MixerFunc needs. */
ULONG ahiac_BuffType; /* Buffer format (V2) */
BOOL (*ahiac_PreTimer)(); /* Call before mixing (V4) */
void (*ahiac_PostTimer)(); /* Call after mixing (V4) */
/* The rest is PRIVATE! Hands off! They may change any time.
[lots of private stuff] */
};
/*** TAGS */
#define AHIDB_UserBase (AHI_TagBase+500) /* Use for driver specific tags */
/*** DEFS */
/* AHIsub_AllocAudio return flags */
#define AHISF_ERROR (1<<0)
#define AHISF_MIXING (1<<1)
#define AHISF_TIMING (1<<2)
#define AHISF_KNOWSTEREO (1<<3)
#define AHISF_KNOWHIFI (1<<4)
#define AHISF_CANRECORD (1<<5)
#define AHISF_CANPOSTPROCESS (1<<6)
#define AHISB_ERROR (0)
#define AHISB_MIXING (1)
#define AHISB_TIMING (2)
#define AHISB_KNOWSTEREO (3)
#define AHISB_KNOWHIFI (4)
#define AHISB_CANRECORD (5)
#define AHISB_CANPOSTPROCESS (6)
/* AHIsub_Start() and AHIsub_Stop() flags */
#define AHISF_PLAY (1<<0)
#define AHISF_RECORD (1<<1)
#define AHISB_PLAY (0)
#define AHISB_RECORD (1)
/* ahiac_Flags */
#define AHIACF_VOL (1<<0)
#define AHIACF_PAN (1<<1)
#define AHIACF_STEREO (1<<2)
#define AHIACF_HIFI (1<<3)
#define AHIACF_PINGPONG (1<<4)
#define AHIACF_RECORD (1<<5)
#define AHIACF_MULTTAB (1<<6) /* Private! */
#define AHIACB_VOL (0)
#define AHIACB_PAN (1)
#define AHIACB_STEREO (2)
#define AHIACB_HIFI (3)
#define AHIACB_PINGPONG (4)
#define AHIACB_RECORD (5)
#define AHIACB_MULTTAB (6) /* Private! */
/* AHIsub_Set#? and AHIsub_(Un)LoadSound return code */
#define AHIS_UNKNOWN (~0)
/* IFF chunk names for the audio mode file */
#define ID_AHIM MAKE_ID('A','H','I','M') /* AHI Modes */
#define ID_AUDN MAKE_ID('A','U','D','N') /* AUDio driver Name */
#define ID_AUDD MAKE_ID('A','U','D','D') /* AUDio driver Data */
#define ID_AUDM MAKE_ID('A','U','D','M') /* AUDio Mode */
#endif /* LIBRARIES_AHISUB_H */